The Java Transaction API (JTA) is a Java API that allows distributed transactions to be done across multiple XA resources. JTA is a specification developed under the Java Community Process as JSR 907. JTA provides for demarcation of transaction boundaries; X/Open XA API allowing resources to participate in transactions.
In the X/Open XA architecture, a transaction manager or transaction processing monitor (TP monitor) can coordinate the transactions across multiple resources such as a database. Each resource has its own manager. The resource manager typically has its own API for manipulating the resource, for example the JDBC API used by relational databases. In addition, the resource manager allows a TP monitor to coordinate a distributed transaction between it and other resource managers. Finally, there is the application which communicates with the TP monitor to begin, commit or rollback the transactions. The application also communicates with the individual resources using their own API to modify the resource.
Application servers can maintain these transactions for JTA or other transaction processing systems using Transaction Recovery Services (TRS). The transaction recovery service can maintain a Transaction Log (TLOG) to allow the application server to recover from a crash that affects or flight transactions.
The application server can be part of a cluster. In past systems, when the application server goes down, the TRS can be manually migrated to another application server instance or the system can wait until the crashed application server instance reboots.